]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
5 years agobackground: Check xml mime type instead of extension
Alexander Mikhaylenko [Fri, 16 Apr 2021 14:17:33 +0000 (19:17 +0500)]
background: Check xml mime type instead of extension

This is required to be able to set animated wallpapers with the wallpaper
portal, which names them 'background' without an extension.

See https://gitlab.gnome.org/bertob/nostalgia/-/merge_requests/12

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1816>

5 years agoworkspaceThumbnail: Update monitor index on 'monitors-changed'
Jonas Ådahl [Wed, 14 Apr 2021 15:12:12 +0000 (17:12 +0200)]
workspaceThumbnail: Update monitor index on 'monitors-changed'

For the primary monitor workspace thumbnail, we must keep the monitor
index in sync with what is currently the primary monitor index,
otherwise we might end up trying to move windows to non-existing
monitors.

For example, if the primary monitor index was 1 when the thumbnail box
was created, but later, the primary monitor index changed to 0, with the
other monitor being turned off, moving a window to one of the workspaces
on the workspace thumbnail, gnome-shell would attempt to move it to the
monitor with the index the primary monitor had in the past, with the
problem being that that monitor no longer exists.

Fix this by listening on the 'monitors-changed' signal on the layout
manager, and update the monitor index of the primary workspace
thumbnails box. Make sure to connect to the signal before creating the
thumbnails box, as the thumbnails box itself will listen to the signal
and recreate its actual thumbnails, and it must do this with the up to
date monitor index.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4075
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1810>

5 years agokeyboard: Fix suggestions box
Jia Chao [Tue, 13 Apr 2021 02:07:54 +0000 (10:07 +0800)]
keyboard: Fix suggestions box

The suggestions box actor was not being correctly populated.
Make it correctly use the St.BoxLayout add_child() method.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3422
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2965
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1806>

5 years agost/widget: Invalidate paint volume on style changes
Jonas Dreßler [Fri, 12 Mar 2021 21:30:43 +0000 (22:30 +0100)]
st/widget: Invalidate paint volume on style changes

StWidget is overriding ClutterActors get_paint_volume() vfunc to adjust
for overpaint of things like box shadows that get set in CSS, it does
that by setting the paint volume to the theme nodes paint box.

Since StWidget can't really get notified when the paint box changes, we
just invalidate the paint volume when the theme nodes paint_equal()
returns FALSE.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1484>

5 years agost/viewport: Invalidate the cached paint volume of ClutterActor
Jonas Dreßler [Sat, 24 Oct 2020 12:03:45 +0000 (14:03 +0200)]
st/viewport: Invalidate the cached paint volume of ClutterActor

Since StViewport uses the value of the StAdjustment to create its custom
paint volume, ClutterActors newly introduced proper caching of paint
volumes doesn't get notifed about changes to that paint volume and will
simply reuse the cached old one.

So make use of the newly introduced
clutter_actor_invalidate_paint_volume() method to make sure ClutterActor
will ask for the paint volume again on the next paint.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1484>

5 years agooverviewControls: Use correct state when updating AppDisplay visibility
Georges Basile Stavracas Neto [Sat, 10 Apr 2021 16:27:01 +0000 (13:27 -0300)]
overviewControls: Use correct state when updating AppDisplay visibility

When OverviewControls goes from HIDDEN to APP_GRID, it constantly checks
if AppDisplay needs to be visible or not by checking the current overview
state is bigger than WINDOW_PICKER. Turns out in this case this check is
problematic, because when the current state trespasses WINDOW_PICKER, the
layout manager will have already positioned AppDisplay halfway to its final
position.

Use either the final or the current state, whichever is biggest, when updating
the AppDisplay visibility. It optionally allows passing the overview state
params to _updateAppDisplayVisibility() so that we avoid a few trampolines to
recaltulate the adjustment state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1805>

5 years agoutil: Use fade_margins in ensureActorVisibleInScrollView function
Andrew Zaech [Sat, 10 Apr 2021 13:02:31 +0000 (13:02 +0000)]
util: Use fade_margins in ensureActorVisibleInScrollView function

Commit f60a469a34 removed vfade_offset in favor of fade_margins.
Util.ensureActorVisibleInScrollView function needs to be adjusted
accordingly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4080

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1802>

5 years agoextensionsService: Really fix copying technical details
Jan Tojnar [Thu, 8 Apr 2021 04:25:28 +0000 (06:25 +0200)]
extensionsService: Really fix copying technical details

gdk_clipboard_set_text() is not introspectable, we have to use
gdk_clipboard_set_value() (shadowed as gdk_clipboard_set())
instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1796>

5 years agoUpdate Turkish translation
Emin Tufan Çetin [Fri, 9 Apr 2021 07:42:21 +0000 (07:42 +0000)]
Update Turkish translation

5 years agoUpdate Turkish translation
Emin Tufan Çetin [Fri, 9 Apr 2021 07:38:16 +0000 (07:38 +0000)]
Update Turkish translation

5 years agoworkspacesView: Don't tie PgUp/PgDown to mapped state
Florian Müllner [Thu, 8 Apr 2021 15:31:54 +0000 (17:31 +0200)]
workspacesView: Don't tie PgUp/PgDown to mapped state

Both app grid and window picker are now always visible in the overview,
so their handling of the PgUp/PgDown keys conflicts.

Resolve that by checking for the overview state instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1798>

5 years agoworkspacesView: Fix PgUp/PgDown shortcut
Florian Müllner [Thu, 8 Apr 2021 15:19:37 +0000 (17:19 +0200)]
workspacesView: Fix PgUp/PgDown shortcut

We still try to switch to the workspace above/below, which doesn't
do anything since the layout is now horizontal.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1798>

5 years agoworkspace: Center window previews horizontally and vertically
Jonas Dreßler [Thu, 14 Jan 2021 21:48:15 +0000 (22:48 +0100)]
workspace: Center window previews horizontally and vertically

Window previews looks slightly offset to the left and top right now
because we don't use the same padding on all edges of the Workspace. We
do that because the oversize and overlap of the window previews is
different on all sides (for example the bottom overlap is very large
because there we show the window title).

To make sure window previews are always perfectly centered on the
Workspace, only use the largest one of the oversize values as spacing
and padding, and add the larger one of the overlap values for the
vertical padding in addition.

With this, we now center the window previews on the Workspace while
never overpainting the allocation of that Workspace to show overlays.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3634

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1670>

5 years agoappDisplay: Ensure icon grid is always aligned with the pixel grid
Sebastian Keller [Thu, 8 Apr 2021 15:40:43 +0000 (17:40 +0200)]
appDisplay: Ensure icon grid is always aligned with the pixel grid

When adaptToSize was called with an odd width, the calculated padding
was not an integer and as a result the icon grid was no longer aligned
to the pixel grid. Similarly it was possible for the page size to be a
non-integer value, which was causing items to not be aligned for
pages > 1.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4015

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1799>

5 years agoextensionsService: Fix copying technical details when extension crashes
Jan Tojnar [Thu, 8 Apr 2021 04:25:28 +0000 (06:25 +0200)]
extensionsService: Fix copying technical details when extension crashes

This was forgotten when porting to GTK 4, leading to the following error
when user tries to copy the error message produced by an extension:

JS ERROR: TypeError: Gtk.Clipboard is undefined
_initActions/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:255:31
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
start@resource:///org/gnome/gjs/modules/script/package.js:190:8
@/nix/store/fwnkwvhwm3kqck4fhkc5y5z853radggg-gnome-shell-40.0/share/gnome-shell/.org.gnome.Shell.Extensions-wrapped:7:17

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1795>

5 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Wed, 7 Apr 2021 12:00:19 +0000 (12:00 +0000)]
Update Esperanto translation

5 years agomain: Use session mode property for welcome dialog
Florian Müllner [Mon, 5 Apr 2021 17:36:29 +0000 (19:36 +0200)]
main: Use session mode property for welcome dialog

We only want to show the welcome dialog in the user session, not
on the login screen or during initial setup. We currently achieve
that by explicitly checking for those mode names, but there are
other modes like gnome-classic where the dialog is equally un-
helpful. Support those cases by adding a session mode property
that determines whether the welcome dialog should be enabled,
so that modes can opt in or out of the feature themselves.

(Both the 'gdm' and 'initial-setup' modes are based on the
'restricted' mode, so this change does not affect them)

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4026

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1793>

5 years agoUpdate Occitan translation
Cédric Valmary [Tue, 6 Apr 2021 07:14:49 +0000 (07:14 +0000)]
Update Occitan translation

5 years agotheme/panel: Remove spacing between Activities and appmenu
arushsharma24 [Thu, 11 Mar 2021 12:36:10 +0000 (18:06 +0530)]
theme/panel: Remove spacing between Activities and appmenu

Top bar elements now have more padding, which makes the spacing between those
elements excessive, so remove it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3769

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1764>

5 years agoremoteSearch: Fetch enabled/disabled list once
Zander Brown [Fri, 2 Apr 2021 03:39:31 +0000 (04:39 +0100)]
remoteSearch: Fetch enabled/disabled list once

GLib should be caching the values but it seems unnecessary to fetch
and marshal what should be the same lists N times instead of just once

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1791>

5 years agooverview: Pass state while calling _animateVisible()
Suryashankar Das [Tue, 16 Mar 2021 12:51:05 +0000 (18:21 +0530)]
overview: Pass state while calling _animateVisible()

Pass OverviewControls.ControlsState.WINDOW_PICKER to the _animateVisible
function in _hideDone().

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3876
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1769>

5 years agoUpdate Dutch translation
Nathan Follens [Thu, 1 Apr 2021 18:37:20 +0000 (18:37 +0000)]
Update Dutch translation

5 years agoappDisplay: Save pages after drag end
Carlos Garnacho [Thu, 18 Mar 2021 23:41:16 +0000 (00:41 +0100)]
appDisplay: Save pages after drag end

In the case that we drop an app in the dash, we take the icon
out of its current page, but we forget to save the page after
that.

This results in oddities dragging further elements around, as
the PageManager does no longer consider them to be in the
positions they actually are.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1939984
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1775>

5 years agostatus/network: Disconnect signal handler on destroy in NMConnectionItem
Sebastian Keller [Tue, 30 Mar 2021 14:37:05 +0000 (16:37 +0200)]
status/network: Disconnect signal handler on destroy in NMConnectionItem

Otherwise this can trigger _sync() calls after the objects it is trying
to update have been destroyed.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4013

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1782>

5 years agoextensionDownloader: Use POST request for checking updates
Yuri Konotopov [Mon, 29 Mar 2021 18:42:42 +0000 (22:42 +0400)]
extensionDownloader: Use POST request for checking updates

Usage of GET requests for checking updates was made deprecated
at website some time ago [1], but REST endpoint was
CSRF-protected until recently [2].
The body of update request may be big enough and thus does not
suitable for GET requests.

[1] https://gitlab.gnome.org/Infrastructure/extensions-web/-/commit/0b38da1b2b440db1b4eb767cff74acf8f8de18e0
[2] https://gitlab.gnome.org/Infrastructure/extensions-web/-/commit/e3ab0c07dce4d58b33b30700ec1ea7aa2e3b4230

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1781>

5 years agoUpdate Hebrew translation
Yaron Shahrabani [Mon, 29 Mar 2021 22:24:43 +0000 (22:24 +0000)]
Update Hebrew translation

5 years agokeyboard: Fix display keyboard layout crash with some input methods
Peng Wu [Mon, 15 Mar 2021 06:50:31 +0000 (14:50 +0800)]
keyboard: Fix display keyboard layout crash with some input methods

Some ibus input method will use the current keyboard layout,
and return "default" as the keyboard layout.
When this happens, display the current keyboard layout instead.

Fixes #3863.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1756>

5 years agoUpdate Hebrew translation
Yosef Or Boczko [Sun, 28 Mar 2021 21:17:38 +0000 (21:17 +0000)]
Update Hebrew translation

5 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 27 Mar 2021 22:42:06 +0000 (22:42 +0000)]
Update Portuguese translation

5 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 27 Mar 2021 22:34:36 +0000 (22:34 +0000)]
Update Portuguese translation

5 years agoUpdate Vietnamese translation
Ngọc Quân Trần [Sat, 27 Mar 2021 07:47:15 +0000 (07:47 +0000)]
Update Vietnamese translation

5 years agoUpdate Chinese (China) translation
Dz Chen [Fri, 26 Mar 2021 15:12:50 +0000 (15:12 +0000)]
Update Chinese (China) translation

5 years agoUpdate Dutch translation
Hannie Dumoleyn [Thu, 25 Mar 2021 16:48:30 +0000 (16:48 +0000)]
Update Dutch translation

5 years agoUpdate Chinese (China) translation
Boyuan Yang [Thu, 25 Mar 2021 02:35:41 +0000 (02:35 +0000)]
Update Chinese (China) translation

5 years agohotplug-sniffer: Drop "volatile" from g_once_init_enter() sentinels
Carlos Garnacho [Tue, 16 Mar 2021 20:44:54 +0000 (21:44 +0100)]
hotplug-sniffer: Drop "volatile" from g_once_init_enter() sentinels

As documented in g_once_init_enter(): "While @location has a volatile qualifier,
this is a historical artifact and the pointer passed to it should not be
volatile.". And effectively this now warns with modern glibc.

Drop this from our logging function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1770>

5 years agocalendar-server: Drop "volatile" from g_once_init_enter() sentinels
Carlos Garnacho [Tue, 16 Mar 2021 20:43:35 +0000 (21:43 +0100)]
calendar-server: Drop "volatile" from g_once_init_enter() sentinels

As documented in g_once_init_enter(): "While @location has a volatile qualifier,
this is a historical artifact and the pointer passed to it should not be
volatile.". And effectively this now warns with modern glibc.

Drop this from our logging function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1770>

5 years agoUpdate Finnish translation
Timo Jyrinki [Sun, 21 Mar 2021 16:42:40 +0000 (16:42 +0000)]
Update Finnish translation

5 years agoPost-release version bump
Florian Müllner [Sat, 20 Mar 2021 12:40:49 +0000 (13:40 +0100)]
Post-release version bump

5 years agoTag release 40.0
Florian Müllner [Sat, 20 Mar 2021 12:09:16 +0000 (13:09 +0100)]
Tag release 40.0

Update NEWS.

5 years agoUpdate Slovak translation
Dušan Kazik [Thu, 18 Mar 2021 09:34:27 +0000 (09:34 +0000)]
Update Slovak translation

5 years agoUpdate British English translation
Zander Brown [Tue, 16 Mar 2021 17:36:07 +0000 (17:36 +0000)]
Update British English translation

5 years agoextensions-app: Fix broken metainfo
Florian Müllner [Mon, 15 Mar 2021 15:39:28 +0000 (16:39 +0100)]
extensions-app: Fix broken metainfo

Eeeks, should have put the post-release version bump into a MR.

5 years agoPost-release version bump
Florian Müllner [Mon, 15 Mar 2021 15:23:45 +0000 (16:23 +0100)]
Post-release version bump

5 years agoTag release 40.rc
Florian Müllner [Mon, 15 Mar 2021 15:09:30 +0000 (16:09 +0100)]
Tag release 40.rc

Update NEWS.

5 years agokeyboard: Handle symbolic OSK key codes as explicitly invalid
Daniel van Vugt [Fri, 12 Mar 2021 06:45:19 +0000 (14:45 +0800)]
keyboard: Handle symbolic OSK key codes as explicitly invalid

`key` is an empty string in this case, causing `charCodeAt(0)` to return
`NaN`, which when passed to `Clutter.unicode_to_keysym` now generates an
error in gjs >= 1.67.3:

```
JS ERROR: Error: Argument wc: value is out of range for uint32
```

And the symbolic keys like Backspace, Enter and Caps Lock would have their
presses ignored.

Just skip the call to `charCodeAt` that will fail and allow
`Clutter.unicode_to_keysym` to return its usual error flag.

Fixes: https://bugs.launchpad.net/bugs/1918738
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1758>

5 years agostatus/network: Ensure the Cancel button passes undefined to close()
Daniel van Vugt [Fri, 12 Mar 2021 06:13:18 +0000 (14:13 +0800)]
status/network: Ensure the Cancel button passes undefined to close()

The parameter to `ModalDialog.close(timestamp)` is optional. But when
invoked via the network dialog's Cancel button it was receiving an
implicit parameter value that's definitely not a timestamp:

```
[0x560f18af0c50 StButton.modal-dialog-linked-button:first-child hover ("Cancel")]
```

And as of today (or gjs >= 1.67.3) that's reported as an error:
```
JS ERROR: Error: Argument timestamp: value is out of range for uint32
popModal@resource:///org/gnome/shell/ui/main.js:638:12
popModal@resource:///org/gnome/shell/ui/modalDialog.js:206:14
close@resource:///org/gnome/shell/ui/modalDialog.js:179:14
```
and so you can't Cancel the dialog anymore.

Make sure `ModalDialog.close()` receives an `undefined` timestamp it
knows how to handle.

Fixes: https://bugs.launchpad.net/bugs/1918666
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1757>

5 years agoUpdate Italian translation
Milo Casagrande [Mon, 15 Mar 2021 08:03:53 +0000 (08:03 +0000)]
Update Italian translation

5 years agoshell/app: Explicitly handle (X11) fallback icon changes
Florian Müllner [Fri, 12 Mar 2021 22:10:42 +0000 (23:10 +0100)]
shell/app: Explicitly handle (X11) fallback icon changes

Since commit 770231, StImageContent implements the GIcon interface, which
allowed us to represent all application icons as GIcon (app-info, X11 icon
property or themed fallback icon).

While that change made for a nicer ShellApp API, it did introduce a
conceptual issue in st_texture_cache_bind_cairo_surface_property():
GIcons usually represent static icons, while the ClutterContent
returned by that method updates automatically when the bound property
changes.

Address this by tracking the MetaWindow:icon property in ShellApp, and
update the fallback icon when it changes. With that, a GIcon object
always represents the same icon, and any icon change is reflected
by a corresponding GIcon change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

5 years agoshell/app: Expose icon as property
Florian Müllner [Fri, 12 Mar 2021 22:13:25 +0000 (23:13 +0100)]
shell/app: Expose icon as property

A property can be more convenient than a method. More importantly,
we are about to allow the icon to change, so a property will be
useful to get notified about those changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

5 years agoshell/app: Only release window ref when we are done
Florian Müllner [Sat, 13 Mar 2021 23:10:56 +0000 (00:10 +0100)]
shell/app: Only release window ref when we are done

We hold a reference to all windows we track for the app. While that
reference is unlikely to be the last remaining one, we still shouldn't
release it until we are done with the window.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

5 years agost/texture-cache: Split out load_cairo_surface_to_gicon() method
Florian Müllner [Fri, 12 Mar 2021 23:07:05 +0000 (00:07 +0100)]
st/texture-cache: Split out load_cairo_surface_to_gicon() method

This is essentially st_texture_cache_bind_cairo_surface_property()
without the binding part.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

5 years agost/texture-cache: Fail loading invalid StImageContent
Florian Müllner [Fri, 12 Mar 2021 22:25:12 +0000 (23:25 +0100)]
st/texture-cache: Fail loading invalid StImageContent

Creating a content object from a cairo surface may fail, in which case
we return an empty content with a 0x0 preferred size.

However when we treat such a content object as GIcon, we happily load
it anyway. Don't do that, so consumers like StIcon can fall back properly
to an alternative.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

5 years agoiconGrid: Only use page relative coords for orientation in getDropTarget
Sebastian Keller [Sun, 14 Mar 2021 16:32:26 +0000 (17:32 +0100)]
iconGrid: Only use page relative coords for orientation in getDropTarget

The x and y coordinates were both adjusted to be page relative, even
though the icon grid can only scroll in one direction. This was leading
to coordinates outside of the icon grid to be considered part of it and
a wrong drop target to be chosen.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3779

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1767>

5 years agoUpdate Punjabi translation
A S Alam [Sun, 14 Mar 2021 15:17:29 +0000 (15:17 +0000)]
Update Punjabi translation

5 years agooverview: Fix showApps() compatibility method
Florian Müllner [Sun, 14 Mar 2021 11:07:31 +0000 (12:07 +0100)]
overview: Fix showApps() compatibility method

The method is unused in gnome-shell itself, but extensions may still
want to call it, so make sure it actually works.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3873

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1766>

5 years agost/texture-cache: Ensure icons keep their aspect ratio when scaled down
Sebastian Keller [Wed, 10 Mar 2021 16:27:42 +0000 (17:27 +0100)]
st/texture-cache: Ensure icons keep their aspect ratio when scaled down

Window preview icons can get scaled down if the window they belong to is
very small and/or there are a lot of open windows. When scaled down this
way the icons would get scaled without keeping the aspect ratio. Fix
this by using a content gravity that keeps the aspect ratio.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3865

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1751>

5 years agost/texture-cache: Don't use content size request mode for surface icons
Sebastian Keller [Wed, 10 Mar 2021 15:39:53 +0000 (16:39 +0100)]
st/texture-cache: Don't use content size request mode for surface icons

While most GIcons passed to this function cause a StImageContent to be
created with the requested size, cairo surface based icons already are
passed as StImageContent with a preferred size corresponding to the
size of the surface they were created from. As a result icons of window
backed applications were never scaled up like the other icons. Fix this
by ignoring the content size for these case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1751>

5 years agoswipeTracker: Remove unused property
Florian Müllner [Thu, 11 Mar 2021 15:08:41 +0000 (16:08 +0100)]
swipeTracker: Remove unused property

The :allow-long-swipes GObject property relies on the automatic
getter/setter added by gjs and is not actually backed by
_allowLongSwipes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1765>

5 years agooverview: Get rid of panel ghost actor
Jonas Dreßler [Tue, 9 Mar 2021 16:31:30 +0000 (17:31 +0100)]
overview: Get rid of panel ghost actor

Right now we use a ClutterClone ghost of the panel simply to add some
spacing to the top monitor edge.

We can remove the panelGhost by adjusting the allocations of all the
parts of the overview ourselves inside ControlsManagers vfunc_allocate,
this should also work with extensions that move the panel somewhere
else.

This makes the initial relayout of the overview significantly faster,
because we now no longer have to relayout the whole panel in the
process.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>

5 years agooverviewControls: Return zero preferred size
Jonas Dreßler [Thu, 11 Mar 2021 14:26:14 +0000 (15:26 +0100)]
overviewControls: Return zero preferred size

The OverviewControls actor gets allocated a fixed size by its parent,
the OverviewActor, anyway, so it's pretty useless to go through the size
request machinery and add up all the sizes of items in the iconGrid,
coming up with a preferred size that's wrong anyway.

Instead simply return a min and preferred size of 0 in
get_preferred_height/width of ControlsManagerLayout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>

5 years agoworkspacesView: Store some variables outside the children-allocate loop
Jonas Dreßler [Tue, 9 Mar 2021 17:12:02 +0000 (18:12 +0100)]
workspacesView: Store some variables outside the children-allocate loop

We've seen this to help quite a bit with performance previously, so also
do it here.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>

5 years agooverviewControls: Hide the appDisplay when it's not shown
Jonas Dreßler [Tue, 9 Mar 2021 16:37:22 +0000 (17:37 +0100)]
overviewControls: Hide the appDisplay when it's not shown

Hiding actors allows excluding them from layout, so by hidding the
appDisplay in all the cases where the overviewAdjustment is not actually
showing it, we can save a lot of time on the first frame of painting
the overview because we no longer have to layout the whole appGrid.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>

5 years agoiconGrid: Subclass a C actor for BaseIcon
Jonas Dreßler [Tue, 2 Mar 2021 10:47:13 +0000 (11:47 +0100)]
iconGrid: Subclass a C actor for BaseIcon

We create a lot of BaseIcons for the appGrid, one for every app, and for
all of those we have to hop through JS to get the preferred width. That
makes it another obvious target for moving to C, so let's do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1755>

5 years agokeyboard: Correctly compare cursor rect to keyboard rect
Jonas Dreßler [Sat, 20 Feb 2021 12:58:39 +0000 (13:58 +0100)]
keyboard: Correctly compare cursor rect to keyboard rect

The logic that decides whether we should shift the window up when the
cursor rectangle overlaps with the keyboard rectangle doesn't work
properly right now, we want it to work like this:

- If the currently focused window is shifted up, keep it shifted up
until the cursor rect no longer overlaps the keyboard rect. To do that
comparison correctly, we need to adjust for the height the cursor rect
is shifted up by (keyboardHeight) and temporarily shift it down again.

- If the currently focused is not shifted up, we want to shift it up as
soon as the focus rect overlaps the keyboard rect. If that's not the
case, want still want to call _setFocusWindow(null) in order to shift
the previously focused window back down.

This fixes two issues: 1) We're currently shifting windows back down at
the wrong position of the cursor (that is y < keyboardHeight). 2) We're
not shifting down previously focused windows when focusing a different
window with the new focus in a specific region (y >= keyboardHeight &&
y + h < monitor.y + monitor.height - keyboardHeight).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1760>

5 years agokeyboard: Add proper tracking of window movements to focus tracker
Jonas Dreßler [Fri, 26 Feb 2021 15:08:20 +0000 (16:08 +0100)]
keyboard: Add proper tracking of window movements to focus tracker

So far the FocusTracker of the OSK can only recognize grab ops on a
window, that is when the user grabs the window using a mouse or the
touchscreen and actively drags it somewhere.

Window can also be moved using keyboard shortcuts, fullscreen buttons or
other ways which don't rely on grabs. Start also supporting those window
movements by listening to the "position-changed" signal on the currently
focused window and emitting the new "window-moved" signal in that case.

Because the OSK sometimes moves windows by itself, we temporarily
disconnect from that new signal while we move the focused window in
_windowSlideAnimationComplete().

This also takes care of resetting this._focusWindowStartY on movements
of the window.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1760>

5 years agokeyboard: Animate focus window using position instead of translation-y
Jonas Dreßler [Sat, 20 Feb 2021 11:55:58 +0000 (12:55 +0100)]
keyboard: Animate focus window using position instead of translation-y

Commit 8526776b4a53d9a801197fb66ce9a282323c1c4e changed the OSK to use
the translation-y property of the MetaWindowActor when animating a focus
window, which broke two things:

1) It's not compatible with the obscured region culling we do for
windows in mutter. That's because MetaCullable strictly operates in
integer coordinates and thus has to ignore any transformations
(translation-y is a transformation). Because of this, during the
animation and gesture, window damage is now tracked incorrectly,
introducing painting issues. The best fix for this would probably be
factoring in transformations when tracking damage in MetaCullable, but
that's not feasible right now.

2) It broke the shifting up of maximized and tiled windows, likely that
is because they are positioned using constraints internally, and mutter
enforces those constraints every time meta_window_move_frame() is
called, not allowing the window to move somewhere else.

To fix both issues, go back to the old way of shifting the window for
now, using the fixed y position of the ClutterActor. To make sure the
drag-up gesture still works, store the initial y1 position of the window
and then use that as a reference point for all our animations.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1760>

5 years agokeyboard: Allow closing immediately
Jonas Dreßler [Sat, 20 Feb 2021 11:35:06 +0000 (12:35 +0100)]
keyboard: Allow closing immediately

Just like opening the OSK, make it possible to close it immediately,
we'll make use of this in the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1760>

5 years agokeyboard: Don't move focusWindow back down on window grab
Jonas Dreßler [Sat, 20 Feb 2021 12:57:51 +0000 (13:57 +0100)]
keyboard: Don't move focusWindow back down on window grab

I suggested it myself when reviewing
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1668, so
here I am reverting that again...

The difference between calling _setFocusWindow(null) and simply
unsetting the focusWindow is that the former animates the window back to
its position before we shifted it up, while the latter simply "lets go
of the window".

In this case we actually want the latter because after the user grabbed
the window, we obviously should not animate it away right underneath the
users pointer/finger.

To ensure the same mistake doesn't happen again, add a small comment
explaining why this code is as it is.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1760>

5 years agoswipeTracker: Reset before emitting 'end' and not after
Alexander Mikhaylenko [Sat, 13 Mar 2021 14:57:53 +0000 (19:57 +0500)]
swipeTracker: Reset before emitting 'end' and not after

If the actor is unmapped in the handler, the touch gesture will cancel.
Since we haven't reset the state yet, it will still work and will actually
cancel the gesture, so reset before that instead.

Fixes overview cancelling when trying to open it with a swipe.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1731>

5 years agoswipeTracker: Clamp position when long swipes are enabled too
Alexander Mikhaylenko [Mon, 1 Mar 2021 17:39:48 +0000 (22:39 +0500)]
swipeTracker: Clamp position when long swipes are enabled too

Avoid wrapping back to the first page when swiping forward from the last
page.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1731>

5 years agoswipeTracker: Pass orientation in constructor
Alexander Mikhaylenko [Mon, 1 Mar 2021 16:53:55 +0000 (21:53 +0500)]
swipeTracker: Pass orientation in constructor

When this class was written, all swipes in the shell were vertical, so it
made sense to make the default orientation vertical. This isn't the case
anymore, thus pass make it mandatory to specify orientation when creating
a tracker.

Change the property default values to horizontal as well to match Clutter
instead of the old shell design.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1731>

5 years agoswipeTracker: Check orientation with a threshold for touchpad
Alexander Mikhaylenko [Sun, 28 Feb 2021 14:23:29 +0000 (19:23 +0500)]
swipeTracker: Check orientation with a threshold for touchpad

Avoid picking the direction too early.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3755

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1731>

5 years agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Sat, 13 Mar 2021 16:52:25 +0000 (16:52 +0000)]
Update Norwegian Bokmål translation

5 years agoRevert "theme/panel: Remove spacing between Activities and appmenu"
Florian Müllner [Sat, 13 Mar 2021 00:27:12 +0000 (01:27 +0100)]
Revert "theme/panel: Remove spacing between Activities and appmenu"

As minor as the visual change is, it's still a UI change.

This reverts commit 91c4c43a7d13bc4baf16cb7e487b83d0336c2fce.

5 years agokeyboard: Stop offsetting the focus rectangle
Jonas Dreßler [Sat, 27 Feb 2021 10:37:24 +0000 (11:37 +0100)]
keyboard: Stop offsetting the focus rectangle

The focus rectangle of the OSK currently gets stored with an offset that
removes the global coordinates and makes it window-local coordinates.
This offsetting has been applied since the introduction of the
FocusTracker with commit fc5ab4470445992b1ad4338290deb24e6b1c5ce2 and it
seems there's no real reason for it.

By removing this, we also emit position-changed when the window has
moved but the window-local coordinates stayed the same. We really want
to emit position-changed in that case because it might affect whether
the window needs to be shifted up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Ignore focus rects outside the window
Jonas Dreßler [Sat, 27 Feb 2021 10:27:23 +0000 (11:27 +0100)]
keyboard: Ignore focus rects outside the window

Apparently some clients, including gtk don't "clip" the focus rectangle
to their window bounds when scrolling the focus outside the window. This
makes us shift up windows when the focus actually is no longer visible.

This issue needs fixing in GTK, it should probably stop reporting
focus changes when the focus moves outside of the visible view. We can
still do a little bit better on our side though and "clip" the rectangle
to the windows frame rect: If it moves out of the window, we simply stop
updating our focus rect.

The intersection check introduces a small problem though: Some clients
(for example gedit) will give us a cursor rect that has a 0 width or
height. This won't play well with graphene_rect_intersect()
(GrapheneRects never intersect if they are 0-sized), so we set the size
to 1 in case we get a 0-sized rectangle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Use GrapheneRect in focus tracker
Jonas Dreßler [Sat, 27 Feb 2021 10:26:00 +0000 (11:26 +0100)]
keyboard: Use GrapheneRect in focus tracker

This will be useful in the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Initialize the FocusTrackers current window correctly
Jonas Dreßler [Fri, 26 Feb 2021 14:52:06 +0000 (15:52 +0100)]
keyboard: Initialize the FocusTrackers current window correctly

The FocusTracker keeps track of the currently focused window using its
internal this._currentWindow property. It will only pick up the focused
window though when receiving a "notify::focus-window" signal, so the
focused window that's set when the FocusTracker is created won't be
picked up.

Fix that by setting the _currentWindow during creation of the
FocusTracker.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Properly destroy focus manager when destroying keyboard
Jonas Dreßler [Fri, 26 Feb 2021 13:34:36 +0000 (14:34 +0100)]
keyboard: Properly destroy focus manager when destroying keyboard

We're currently leaking this object, so make sure to disconnect
everything properly and plug the leak.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Remove unused argument
Jonas Dreßler [Fri, 26 Feb 2021 13:36:35 +0000 (14:36 +0100)]
keyboard: Remove unused argument

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Make a few functions private
Jonas Dreßler [Sat, 20 Feb 2021 11:51:32 +0000 (12:51 +0100)]
keyboard: Make a few functions private

Now that we got rid of the external calls to setCursorLocation(), we can
make that private. animateShow() and animateHide() weren't called from
outside anyway, so let's make those private, too.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Clear keyboard rest timer when opening immediately
Jonas Dreßler [Sat, 20 Feb 2021 11:33:29 +0000 (12:33 +0100)]
keyboard: Clear keyboard rest timer when opening immediately

When immediate is true on open(), we want to show the OSK immediately,
it also makes sense to cleanup the keyboard rest timer in that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agokeyboard: Rename focusTracker "reset" signal to "window-grabbed"
Jonas Dreßler [Thu, 18 Feb 2021 11:23:59 +0000 (12:23 +0100)]
keyboard: Rename focusTracker "reset" signal to "window-grabbed"

What this signal does is fire when a window was grabbed. A receiver
might want to do something special when a window was grabbed, whereas
"reset" can mean anything. Rename the "reset" signal to
"window-grabbed".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>

5 years agotheme/panel: Remove spacing between Activities and appmenu
arushsharma24 [Thu, 11 Mar 2021 12:36:10 +0000 (18:06 +0530)]
theme/panel: Remove spacing between Activities and appmenu

Top bar elements now have more padding, which makes the spacing between those
elements excessive, so remove it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3769

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1754>

5 years agoUpdate Korean translation
Changwoo Ryu [Fri, 12 Mar 2021 02:14:03 +0000 (02:14 +0000)]
Update Korean translation

5 years agomessageTray: Remove deprecated code
Florian Müllner [Tue, 9 Mar 2021 19:48:47 +0000 (20:48 +0100)]
messageTray: Remove deprecated code

Originally the Source method for showing notifications was "notify",
which had to change when turning it into a GObject subclass to not
clash with g_object_notify().

That change happened during the 3.36 cycle, so extensions have had
two releases (a year) to adapt to the replacement. That seems long
enough, so remove the deprecated compat code.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3848

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1749>

5 years agoUpdate Friulian translation
Fabio Tomat [Wed, 10 Mar 2021 12:26:00 +0000 (12:26 +0000)]
Update Friulian translation

5 years agostyling: Update for darker system grey
Jakub Steiner [Tue, 9 Mar 2021 19:22:37 +0000 (20:22 +0100)]
styling: Update for darker system grey

- darken buttons similarly to the app grid groups
- entries as well
- adjust foreground color of additional elements to
  work for 'light' variant as well

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3847

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1748>

5 years agoUpdate German translation
Christian Kirbach [Tue, 9 Mar 2021 21:18:33 +0000 (21:18 +0000)]
Update German translation

5 years agoworkspace: Use Util.lerp() instead of actor box for interpolating
Jonas Dreßler [Thu, 25 Feb 2021 16:20:42 +0000 (17:20 +0100)]
workspace: Use Util.lerp() instead of actor box for interpolating

Instead of interpolating our workspace and layout boxes for each child
using clutter_actor_box_interpolate(), use our Util.lerp() function and
stay in JS land instead.

This is quite a large performance improvement since it avoids
heap-allocating a new ClutterActorBox for every child. With this, we're
finally at a duration of 1.0 ms to allocate the Workspace with 20
windows.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agowindowPreview: Subclass a C actor
Jonas Dreßler [Thu, 25 Feb 2021 15:04:30 +0000 (16:04 +0100)]
windowPreview: Subclass a C actor

Move the get_preferred_width/height() and allocate() vfunc
implementations of WindowPreview to C, subclassing the C GObject from
JS.

This gets us another significant performance gain, allocating a
workspace with 20 windows now only takes 1.2 ms.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoworkspace: Get some values outside the children loop when allocating
Jonas Dreßler [Thu, 25 Feb 2021 11:13:21 +0000 (12:13 +0100)]
workspace: Get some values outside the children loop when allocating

It turned out that getting properties and saving them to a variable
outside of loops instead of accessing them everytime inside the loop can
have significant impact on performance, so do that in Workspaces
vfunc_allocate().

Here the impact is not that large, about 0.05 ms with 20 open windows,
that still seems worth it though.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoworkspace: Don't create useless childBox
Jonas Dreßler [Thu, 25 Feb 2021 11:06:25 +0000 (12:06 +0100)]
workspace: Don't create useless childBox

Creating a ClutterActorBox here is superfluous, we actually create and
assign a new box to this variable inside the loop.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoworkspace: Don't do checks in animateAllocation()
Jonas Dreßler [Thu, 25 Feb 2021 10:57:22 +0000 (11:57 +0100)]
workspace: Don't do checks in animateAllocation()

These checks aren't needed since Clutter should enforce this for us
already and skip the implicit transition when possible. This gets our
time spent in vfunc_allocate() down to 2.0 ms with 20 windows

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoworkspace: Use set_origin/set_size instead of properties when allocating
Jonas Dreßler [Thu, 25 Feb 2021 10:54:39 +0000 (11:54 +0100)]
workspace: Use set_origin/set_size instead of properties when allocating

Setting four properties is more expensive than calling two C functions,
so move to set_origin()/set_size() calls for our ClutterActorBox
handling.

This gets us down to an average time of 2.1 ms spent in vfunc_allocate()
with 20 windows

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoworkspace: Iterate windowSlots directly when allocating
Jonas Dreßler [Thu, 25 Feb 2021 10:50:44 +0000 (11:50 +0100)]
workspace: Iterate windowSlots directly when allocating

We can save a little bit of time in this loop by iterating directly
over the windowSlots array instead of iterating through children and
then performing a search for the windowSlot. This saves more time and we
only spend 2.2 ms instead of 2.3 ms in vfunc_allocate() now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agoMove WindowPreviewLayout from JS to C
Jonas Dreßler [Sat, 20 Jun 2020 15:22:30 +0000 (17:22 +0200)]
Move WindowPreviewLayout from JS to C

This layout manager is used quite often and the time we spend calling
it's allocate and get_preferred_width/heigth functions increases with
every open window.

We can save a lot of precious time during the layout cycle by moving
this layout manager from JS to C, thus avoiding the overhead of
trampolining between C and JS land.

In a measurement where the average time spent in vfunc_allocate() of the
Workspace actor was measured while opening an overview with 20 windows,
the average time spent went down from 3.1 ms to 2.3 ms.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1743>

5 years agopanel: Don't change text color when entering the overview or lockscreen
Jonas Dreßler [Mon, 1 Mar 2021 09:21:58 +0000 (10:21 +0100)]
panel: Don't change text color when entering the overview or lockscreen

With the introduction of the transparent panel in the overview, we
started making the panel text/icon color slightly brighter in the
overview and on the lockscreen to ensure best contrast. Now
unfortunately, setting the text color incurred a relayout of the
underlying ClutterText actor (fixed with
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1750), and
setting the icon color causes the icon texture to get regenerated
(fixed with
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/932).
Regenerating the icon texture will replace the icon actor, which also
causes a relayout.

This relayout of the panel has been measured to add at least 1
millisecond (the numbers fluctuated a lot) to about 5 ms it takes to
layout the first frame when showing the overview.

Since https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/932 is
unlikely to land this cycle, this commit proposes a different solution:
Simply don't use a different color for text in the overview. To avoid
issues with contrast in the overview, make the default color slightly
brighter and change it from #ccc to #ddd.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1733>

5 years agopanel: Only update appMenu icon when the app actually changed
Jonas Dreßler [Mon, 1 Mar 2021 09:07:27 +0000 (10:07 +0100)]
panel: Only update appMenu icon when the app actually changed

Right now we always recreate the icon of the appMenu when calling
_sync(). This will relayout the panel everytime we open the overview,
because we call _sync() in that case.

We can easily avoid that by only recreating the icon actor in case the
app that's opened actually changes. This gets us close to doing no more
relayouts of the panel when opening the overview.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1733>

5 years agopanel: Don't completely hide AppMenuButton when invisible
Jonas Dreßler [Mon, 1 Mar 2021 09:03:50 +0000 (10:03 +0100)]
panel: Don't completely hide AppMenuButton when invisible

We already set the AppMenuButton to be non-reactive and transparent when
we hide it. Hiding it completely using clutter_actor_hide() will
additionally make it no longer affect layout and thus queue a relayout.

Since we hide the appMenu in the overview and we want to avoid
relayouting the panel when entering and leaving the overview, don't
completely hide the AppMenuButton to avoid queueing this relayout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1733>